const mysql = require('mysql')
const config = require('../config/config')

module.exports = {
  config,

  connection: null,

  // 建立数据库连接
  openConn() {
    this.connection = mysql.createConnection(this.config)
  },

  /**
   * 请求数据库操作
   * @param {*} config  {sql:`sql语法`,params:[参数]}
   * @returns {Promise} 返回一个Promise对象
   */
  exec(config) {
    return new Promise((resolve, reject) => {
      this.openConn() //请求连接

      // 第一步 请求数据库连接
      this.connection.commit()

      // 第二步 操作数据库 增删改查
      this.connection.query(config.sql, config.params, function (error, result) {
        if (error) reject(error)
        resolve(result)
      })

      // 第三步 关闭数据库
      this.connection.end((err) => {
        this.connection = null //清空对象
      })
    })
  }
}
